import {StringUtil} from "./StringUtil";


class DateUtil{
  static NORMAL = "yyyy-MM-dd hh:mm:ss";
  static NOSS = "yyyy-MM-dd hh:mm";
  static YYYY_MM_DD = "yyyy-MM-dd";
  /**
   * 格式化日期
   * @param date
   * @param pattern
   * @returns {*|void|string}
   */
  static dateParseString(date,pattern) {
    let ret;
    const opt = {
      "Y+": date.getFullYear().toString(),        // 年
      "m+": (date.getMonth() + 1).toString(),     // 月
      "d+": date.getDate().toString(),            // 日
      "H+": date.getHours().toString(),           // 时
      "M+": date.getMinutes().toString(),         // 分
      "S+": date.getSeconds().toString()          // 秒
      // 有其他格式化字符需求可以继续添加，必须转化成字符串
    };
    for (let k in opt) {
      ret = new RegExp("(" + k + ")").exec(pattern);
      if (ret) {
        pattern = pattern.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
      };
    };
    return pattern;
  }

  /**
   * //https://www.cnblogs.com/wkrbky/p/6266701.html
   * 字符串转日期
   * @param dateStr
   * @param pattern
   * @returns {void | string}
   */
 static stringParseDate (dateStr,pattern) {
   if(StringUtil.checkNull(dateStr)){
     return dateStr;
   }
    let dates = new Date(dateStr);
    var date = {
      "M+": dates.getMonth() + 1,
      "d+": dates.getDate(),
      "h+": dates.getHours(),
      "m+": dates.getMinutes(),
      "s+": dates.getSeconds(),
      "q+": Math.floor((dates.getMonth() + 3) / 3),
      "S+": dates.getMilliseconds()
    };
    if (/(y+)/i.test(pattern)) {
      pattern = pattern.replace(RegExp.$1, (dates.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
      if (new RegExp("(" + k + ")").test(pattern)) {
        pattern = pattern.replace(RegExp.$1, RegExp.$1.length == 1
          ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
      }
    }
    return pattern;
  }
}

// let date = "2020-11-05T03:16:15.993+0000";
// console.log(DateUtil.stringParseDate(new Date(date),DateUtil.NOSS))
export {DateUtil}
